Skip to content

Video export front-end: ExportDialog + TitleBar entry (H.264/.mp4)#167

Merged
appergb merged 1 commit into
mainfrom
feat/export-ui
Jun 28, 2026
Merged

Video export front-end: ExportDialog + TitleBar entry (H.264/.mp4)#167
appergb merged 1 commit into
mainfrom
feat/export-ui

Conversation

@appergb

@appergb appergb commented Jun 28, 2026

Copy link
Copy Markdown
Owner

Adds a TitleBar Export-Video entry + ExportDialog (format / resolution / save-path) calling the existing export_video backend. H.265/ProRes shown disabled (backend not wired). No fake progress (backend has no callback) — status+toast only. 10 new unit tests; web 184/184.

🤖 Generated with Claude Code

Wire the existing `export_video` backend (#112) to a front-end surface so
users can render the timeline to a real .mp4 from the UI.

- ExportDialog: format select (H.264/.mp4 enabled; H.265/ProRes shown
  disabled + "not wired" note, matching the backend's resolve_preset
  rejection) and resolution select (720p/1080p/4K, default seeded from the
  timeline's own short edge). Export → native .mp4 save dialog → exportVideo.
  Backend has no progress callback, so this is a status+toast surface
  (button reads "Exporting…", controls disabled in flight); success/failure
  both pushToast.
- TitleBar: "Export Video" entry beside the XML export, disabled when no
  track holds a clip.
- api.ts: exportVideo() wrapper + ExportRequest/ExportSummary types,
  camelCase-aligned with the Rust DTO; rejects outside Tauri.
- Dropdown: optional per-option `disabled` (greyed, unselectable).
- uiStore: exportDialogOpen state; mount dialog in App.
- i18n: zh-CN + en keys for the dialog and title-bar entry.
- Tests: pure helpers (withMp4Ext / defaultMp4Name / defaultQuality).

Front-end only; no export backend logic changed.
@appergb appergb merged commit 3a1c470 into main Jun 28, 2026
2 checks passed
@appergb appergb deleted the feat/export-ui branch June 28, 2026 16:41
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant